package tarea2.managedbeans;

import entidades.Paciente;
import entidades.Usuario;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;


@Named(value = "controlUser")
@ApplicationScoped

public class ControlUsuarios {
    private String dni;  
    private String login;
    private String password;
    private Date fechaNacimiento;
    private int dia;
    private int año;
    private int mes;
    private String nombre;
    private String apellidos;
    private String email;
    private String telefono;
    private List<Usuario> user = new ArrayList<Usuario>();

    
    public String anadirUsuario(){
        try{
           Integer.parseInt(dni.substring(0, 8));
            if(dni.equals("")||nombre.equals("")||apellidos.equals("") || telefono.equals("") || email.equals("")|| login.equals("")||password.equals("")){
                FacesContext ctx = FacesContext.getCurrentInstance();
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Faltan datos", "Faltan datos"));
            } else if(año<1900||año>2200){
                FacesContext ctx = FacesContext.getCurrentInstance();
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Año no válida", "Año no válida"));
             }else if(mes<1||mes>12){
                FacesContext ctx = FacesContext.getCurrentInstance();
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Mes no válida", "Mes no válida"));
             }
             else if(dia<1||dia>31){
                FacesContext ctx = FacesContext.getCurrentInstance();
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Dia no válida", "Dia no válida"));
             }
            else if ((dni.charAt(8)<'A')||(dni.charAt(8)>'Z')){            
                FacesContext ctx = FacesContext.getCurrentInstance();
                ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "DNI:El último caracter debe ser una letra en mayúscula", "DNI:El ultimo caracter debe ser una letra en mayúscula "));      
            }else {            
                fechaNacimiento.setDate(dia);
                fechaNacimiento.setMonth(mes);
                fechaNacimiento.setYear(año);
                Usuario usuario=new Usuario(dni,password,nombre,apellidos,fechaNacimiento,email,telefono);
                user.add(usuario);
            }
       }catch(NumberFormatException | StringIndexOutOfBoundsException e){
            FacesContext ctx = FacesContext.getCurrentInstance();
            ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "DNI:Esta formado por 8 digitos y una letra en mayúcula", "DNI:Esta formado por 8 digitos y una letra en mayúcula"));
       } 
        return null;
    
    }

    public String eliminarUsuario(int i){
        user.remove(i);
        return null;
    }
    
    public List<Usuario> getUser() {
        return user;
    }
    
    public void setUser(List<Usuario> user) {
        this.user = user;
    }

    public String getDni() {
        return dni;
    }

    public void setDni(String dni) {
        this.dni = dni;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Date getFechaNacimiento() {
        return fechaNacimiento;
    }

    public void setFechaNacimiento(Date fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }

    public int getDia() {
        return dia;
    }

    public void setDia(int dia) {
        this.dia = dia;
    }

    public int getAño() {
        return año;
    }

    public void setAño(int año) {
        this.año = año;
    }

    public int getMes() {
        return mes;
    }

    public void setMes(int mes) {
        this.mes = mes;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

   
    
    
    }